package com.geek.gkfgw.framework.id;

import java.lang.annotation.*;

/**
 * <h1>自动注入主键ID值的注解。</h1><br/>
 *
 * <h1><br/><a href="https://u.geekbang.org/subject/arch3/100614201">Java 业务架构实战营：https://u.geekbang.org/subject/arch3/100614201</a></h1><br/><h1><a href="https://gitee.com/ylimhhmily/BizArchPracticeCamp">Java 业务架构实战营代码地址：https://gitee.com/ylimhhmily/BizArchPracticeCamp</a></h1><br/><h1><a href="https://u.geekbang.org/subject/java4th/1001148?source=app_share">高级 Java 工程体系课 2023 版：https://u.geekbang.org/subject/java4th/1001148?source=app_share</a></h1><br/><h1><a href="https://time.geekbang.org/column/intro/100312101?tab=catalog">Dubbo 源码剖析与实战：https://time.geekbang.org/column/intro/100312101?tab=catalog</a></h1>
 *
 * @author hmilyylimh
 * ^_^
 * @version 0.0.1
 * ^_^
 * @date 2022-02-19
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ID {

    /** <h1>指定ID值的前缀，例：RP，那么最后拼接出来的ID值为：RP00001</h1> **/
    String prefix() default "";

    /** <h1>指定ID值的最大长度</h1> **/
    int maxLength() default 32;

    /** <h1>需要给对象中的哪个字段赋值</h1> **/
    String fieldName() default "";
}